package com.chenjunlin.app.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chenjunlin.app.dao.entity.LinkDO;
import com.chenjunlin.app.dto.reqtDTO.AddLinkReqDTO;
import com.chenjunlin.app.dto.reqtDTO.PageLinkReqDTO;
import com.chenjunlin.app.dto.reqtDTO.UpdateLinkReqDTO;
import com.chenjunlin.app.dto.resp.AddLinkRespDTO;
import com.chenjunlin.app.dto.resp.PageLinkRespDTO;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;

public interface LinkService extends IService<LinkDO> {

    /**
     * 新增短链接
     * @param addLinkReqDTO
     * @return
     */
    AddLinkRespDTO addLink(AddLinkReqDTO addLinkReqDTO);

    /**
     * 分页查询短链接信息
     * @param pageLinkReqDTO
     * @return
     */
    IPage<PageLinkRespDTO> pageQuery(PageLinkReqDTO pageLinkReqDTO);

    /**
     * 修改短链接操作
     * @param updateLinkReqDTO
     * @return
     */
    void updateByDTO(UpdateLinkReqDTO updateLinkReqDTO);

    /**
     * 根据短链接跳转到原始链接
     * @param shortUri
     * @param request
     * @param response
     */
    void redirect(String shortUri, ServletRequest request, ServletResponse response);
}
